package controlador;

import interfaz.TDAManejoDatos;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.List;

import beans.BeanCliente;
import beans.BeanCotizacionRodamiento;
import beans.BeanSolicitudCotizacion;

public class AccesoRemoto {
	private static AccesoRemoto instancia;
	private static String hostname = "localhost";
	TDAManejoDatos rmiController;

	public static void main(String[] args)
	{
		new AccesoRemoto();
	}

	public static AccesoRemoto getInstancia(){
		if (instancia==null){
			instancia = new AccesoRemoto();
		}
		return instancia;
	}

	public AccesoRemoto(){
		instancia = this;
		getStub();
	}

	private boolean getStub() {
		try {
			rmiController = (TDAManejoDatos)Naming.lookup ("//"+hostname+"/rmiController");
			System.out.println("GetStub");
			return true;
		} catch (Exception e) {
			System.out.println("No me puedo conectar al server");
		}
		return false;
	}

	
	public BeanCotizacionRodamiento mostrarComparativaPrecios(BeanSolicitudCotizacion solicitudCotizacion)
	{
		try{
			return rmiController.mostrarComparativaPrecios(solicitudCotizacion);
		}catch (RemoteException e){
			e.printStackTrace();
		}
		return null;
	}

	public List<BeanCliente> buscarClientes(String nombreCliente, String cuitCliente) {
		try{
			return rmiController.buscarClientesCriterios(nombreCliente,cuitCliente);
		}catch (RemoteException e){
			e.printStackTrace();
		}
		return null;
	}

	public boolean guardarCotizacion(
			BeanCotizacionRodamiento beanCotizacionRodamiento) {
		try{
			return rmiController.guardarCotizacion(beanCotizacionRodamiento);
		}catch (RemoteException e){
			e.printStackTrace();
		}
		return false;
	}
	
	public List<BeanCotizacionRodamiento> levantarCotizaciones(String numeroCuit) {
		try{
			return rmiController.levantarCotizaciones(numeroCuit);
		}catch (RemoteException e){
			e.printStackTrace();
		}
		return null;
	}

	public boolean generarFactura(
			BeanCotizacionRodamiento beanCotizacionRodamiento) {
		try{
			return rmiController.generarFactura(beanCotizacionRodamiento);
		}catch (RemoteException e){
			e.printStackTrace();
		}
		return false;
	}
	
	
}
	
	